package com.swiftops.basic.sys.service;

import com.swiftops.basic.sys.model.SysDict;
import com.swiftops.basic.sys.vo.entity.SysDictEntityVO;
import com.swiftops.basic.sys.vo.request.SysDictRequestVO;
import com.swiftops.basic.sys.vo.response.SysDictResponseVO;
import com.swiftops.common.core.PageResult;
import com.swiftops.common.service.Service;

import java.util.List;

/**
 * 字典
 *
 * @author yangyang
 * @date 2023/09/17
 **/
public interface SysDictService extends Service<SysDict> {

    /**
     * 查询所有字典
     *
     * @return
     */
    List<SysDict> findAll();

    /**
     * 获取字典分页列表
     *
     * @param sysDictRequestVO 查询条件
     * @return 返回字典分页结果
     */
    PageResult<SysDictResponseVO> querySysDictPageList(SysDictRequestVO sysDictRequestVO);

    /**
     * 获取字典详细信息
     *
     * @param id 字典ID
     * @return 字典
     */
    SysDictEntityVO getSysDictEntityVO(String id);

    /**
     * 新增字典
     *
     * @param sysDictEntityVO 字典实体
     */
    void addSysDict(SysDictEntityVO sysDictEntityVO);

    /**
     * 修改字典
     *
     * @param sysDictEntityVO 字典实体
     */
    void updateSysDict(SysDictEntityVO sysDictEntityVO);

    /**
     * @param id        主键
     * @param isUseable 启用状态
     */
    void useableSysDict(String id, Boolean isUseable);

    /**
     * 删除字典
     *
     * @param id 字典ID
     */
    void deleteSysDict(String id);
}
